package TwoSum;

import java.util.HashMap;

/**
 * @author hht
 * @ClassName Solution
 * @Description
 * Given an array of integers, return indices of the two numbers such that they add up to a specific target.
 * You may assume that each input would have exactly one solution, and you may not use the same element twice.
 * Example:
 * Given nums = [2, 7, 11, 15], target = 9,
 * Because nums[0] + nums[1] = 2 + 7 = 9,
 * return [0, 1].
 * https://leetcode.com/problems/two-sum/
 * @Date 2019/6/4 21:15
 * @VERSION 1.0
 */
class Solution {
    public int[] twoSum(int[] nums, int target) {
        HashMap<Integer,Integer> vk = new HashMap();
        for(int i=0;i<nums.length;i++){
            vk.put(nums[i],i);
        }
        for(int i=0;i<nums.length;i++){
            int otherKey = target-nums[i];
            if(vk.get(otherKey)!=null&&i!=vk.get(otherKey)){
                return new int[]{i,vk.get(otherKey)};
            }
        }
        return  null;
    }
}
